#ifndef _OBSERVABLE_H
#define _OBSERVABLE_H

#pragma once
#include "Observer.h"
#include <map>
#include <string>

using namespace std;

class Observer;

class Observable
{
public:
	Observable(void);
	virtual ~Observable(void);
	void addObserver(Observer*);
	void deleteObserver(Observer*);
	void notifyObservers(void);
	bool hasChanged(void);
	void clearChange(void);
private:
	map<string, Observer*> observers;
	bool isChanged;
};

#endif
